package com.ctshk.rpc.ship.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description 当地玩乐-产品中心
 * @Author wansi <gaylen15527491065@yeah.net>
 * @Date 2021/3/24
 */
@Data
@ApiModel(value="LocalFunProductListDTO对象", description="产品列表")
public class ShipProductListDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty(value = "编码")
    private String code;

    @ApiModelProperty(value = "审批状态（1 待提交，2 待审批，3 审批中，4 审批不通过，5 审批通过）")
    private Integer approvalStatus;

    @ApiModelProperty(value = "售卖状态（0 无效，1 有效）当审批状态为通过时才会有售卖状态1")
    private Integer sellStatus;

    @ApiModelProperty(value = "船公司类型(1 信德船票，2 珠江船票)")
    private Long companyType;

    @ApiModelProperty(value = "船公司类型(1 信德船票，2 珠江船票)")
    private String companyTypeDesc;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private Long cabinClass;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClassName;

    @ApiModelProperty(value = "出发城市id")
    private Long depCityId;

    @ApiModelProperty(value = "出发城市名称")
    private String depCityName;

    @ApiModelProperty(value = "出发城市id")
    private String startPlace;

    @ApiModelProperty(value = "出发城市名称")
    private String endPlace;

    @ApiModelProperty(value = "到达城市id")
    private Long arrCityId;

    @ApiModelProperty(value = "到达城市名称")
    private String arrCityName;

    @ApiModelProperty(value = "航线id")
    private Long routeId;

    @ApiModelProperty(value = "航线名称")
    private String routeName;

    @ApiModelProperty(value = "船种id")
    private Long shipTypeId;

    @ApiModelProperty(value = "船种名称")
    private String shipTypeName;

    @ApiModelProperty(value = "航次码")
    private String voyage;

    @ApiModelProperty(value = "出发时间")
    @JsonFormat(timezone = "GMT+8", pattern = "HH:mm")
    private LocalDateTime depTime;

    @ApiModelProperty(value = "到达时间")
    private LocalDateTime arrTime;

    @ApiModelProperty(value = "可售座位号(珠江船票)，多个逗号分隔")
    private String availableSeat;

    @ApiModelProperty(value = "可售座位号(珠江船票)，多个逗号分隔")
    private String seatNumbers;

    @ApiModelProperty(value = "库存(珠江船票)")
    private Integer stock;

    @ApiModelProperty(value = "供应商id(信德船票)")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称(信德船票)")
    private String supplierName;

    @ApiModelProperty(value = "负责人id")
    private Long chargeUserId;

    @ApiModelProperty(value = "负责人名称")
    private String chargeUserName;

    @ApiModelProperty(value = "适用人群id")
    private Long applicableCrowdId;

    @ApiModelProperty(value = "适用人群名称")
    private String applicableCrowdName;

    @ApiModelProperty(value = "打包状态（1：允许打包 2：不允许打包 3：只限打包）")
    private Integer packStatus;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;




    //------------------------
    @ApiModelProperty(value = "船票产品id")
    private Long shipProductId;

    @ApiModelProperty(value = "开售类型（1：立即开售 2：定时开售）")
    private Integer saleType;

    @ApiModelProperty(value = "开售开始时间")
    private LocalDateTime saleBeginDate;

    @ApiModelProperty(value = "开售结束时间")
    private LocalDateTime saleEndDate;

    @ApiModelProperty(value = "是否二次确认")
    private Integer isConfirm;

    @ApiModelProperty(value = "取消政策(1：限时取消 2：不退不改)")
    private Integer cancelStrategy;

    @ApiModelProperty(value = "预订须知")
    private String bookingInformation;

    @ApiModelProperty(value = "乘客须知")
    private String passengerInformation;

    @ApiModelProperty(value = "小童购票须知")
    private String kidTicketingInformation;

    @ApiModelProperty(value = "服务费类型(1:数值 2：百分比)")
    private Integer serviceChargeType;

    @ApiModelProperty(value = "服务费(HKD)")
    private String serviceChargePrice;

    @ApiModelProperty(value = "退改手续费类型")
    private Integer refundFeeType;

    @ApiModelProperty(value = "退改手续费(HKD)")
    private String refundFeePrice;

    @ApiModelProperty(value = "税费与其他费用(HKD)")
    private BigDecimal otherFeePrice;

    @ApiModelProperty(value = "退改列印内容")
    private String refundContent;

    @ApiModelProperty(value = "是否需要证件（0：不需要 1：需要）")
    private Integer isNeedCertificates;

    @ApiModelProperty(value = "是否需要航班信息")
    private Integer isNeedRoute;

    @ApiModelProperty(value = "取票类型(1：电子票 2：纸质票)")
    private Integer ticketCollectionType;

    @ApiModelProperty(value = "取票类型对应方式(电邮/短信)")
    private String ticketCollection;

    @ApiModelProperty(value = "使用方式(1 兑换使用，2 直接使用)")
    private Integer exchangeMethod;
}
